package com.zwps.biz.api.model.vo.file.record;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 文件记录
 * 
 * @ClassName: FileRecordVO
 * @Description:
 * @author lyh
 * @date 2023年5月27日 下午9:53:51
 *
 */
@Schema(description = "文件记录")
@Getter
@Setter
@ToString
public class FileRecordVO {
    /**
     * 主键
     */
    @Schema(description = "文件ID")
    private String id;

    /**
     * 文件名称
     */
    @Schema(description = "文件名称")
    private String fileName;

    /**
     * 文件保存的路径
     */
    @Schema(description = "文件路径")
    private String filePath;

    /**
     * 文件下载的地址
     */
    @Schema(description = "文件地址")
    private String fileUrl;

    /**
     * 文件类（file_class表
     */
    @Schema(description = "文件类（file_class表")
    private String fileClass;

    /**
     * 文件类名
     */
    @Schema(description = "文件类名")
    private String fileClassName;

    /**
     * 文件类型
     */
    @Schema(description = "文件类型")
    private String fileType;

    /**
     * 文件大小（字节）
     */
    @Schema(description = "文件大小，单位字节")
    private Long fileSize;

    /**
     * 存储类型 @see com.yskj.biz.file.domain.enums.FileStoreTypeEnum
     */
    @Schema(description = "存储类型存储类型（0：本地磁盘；1：MinIo）")
    private Integer storeType;

    /**
     * 存储类型存储类型（0：本地磁盘；1：MinIo）
     */
    @Schema(description = "存储类型存储类型（0：本地磁盘；1：MinIo）")
    private String storeTypeName;

    /**
     * 上传状态 @see com.yskj.biz.file.domain.enums.FileUploadStatusEnum
     */
    @Schema(description = "上传状态，选项【0：上传中|1：上传成功|2：上传失败】")
    private Integer uploadStatus;

    /**
     * 上传状态【0：上传中|1：上传成功|2：上传失败】
     */
    @Schema(description = "上传状态，选项【0：上传中|1：上传成功|2：上传失败】")
    private String uploadStatusName;

    @Schema(description = "上传失败原因")
    private String uploadFailReason;

    @Schema(description = "上级文件ID")
    private String parentId;

    @Schema(description = "文件使用类型（1：原文件|2：压缩图片|3：压缩视频|4：视频封面）")
    private Integer useType;

    @Schema(description = "文件使用类型（1：原文件|2：压缩图片|3：压缩视频|4：视频封面）")
    private String useTypeName;

    @Schema(description = "是否外部文件（0：不是|1：是）")
    private Integer externalFile;
}
